<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=s, initial-scale=1.0">
    <title>闭包</title>
    <style>
        a{ display: block;}
    </style>
</head>
<body>
    <script>
    //   自由变量
    //  当前作用域没有定义，而使用了，
    //  会在上一层作用域查找，如果找到全局作用域还没有 就认为是undefined
    var  a = 100;
    function out(){
        var b = 200;
        function inner(){
            var c = 300;
            console.log("a:",a);
            // a 在inner里面没有定义，取上一层 outer找，也没有定义 全局查找   100
            console.log("b:",b);
             // b 在inner里面没有定义，取上一层 outer找，200
            console.log("c:",c);
            //  c   在inner里面 300
            console.log("d:",d);
             // d 在inner里面没有定义，取上一层 outer找，也没有定义 全局查找 d is not defined
        }
        inner();
    }
    out();
    
    </script>

</body>
</html>